我有一些敏感数据存储在SQLite中,用于Android应用程序。我需要能够在持久化时加密,但在从数据库反序列化时也能解密。不确定我在Android上有哪些选项可以执行此操作? 最佳答案 Android中没有内置任何内容来加密数据库内容。欢迎您自己加密/解密值并将加密的Material存储在数据库中,但这取决于您,并且必须逐个单元地完成。对于加密算法,Android内置了javax.crypto。另外,请记住,如果您的加密key被嵌入到您的应用程序中,任何关心的人都能够通过您的加密。 关
我正在为Android编写一个应用程序,它使用对称key加密来保护敏感数据。据我所知,Android只直接支持“PBEWithMD5AndDES”。这个算法有多安全?另外,我在下面包含了我的代码(非安卓)。我的代码是否正确地加密了数据?importjava.io.UnsupportedEncodingException;importjava.security.InvalidAlgorithmParameterException;importjava.security.InvalidKeyException;importjava.security.NoSuchAlgorithmExcep
我正在使用下面的方法,如果我输入正确的key,一切正常。但是如果我输入了错误的key,我会收到BadPaddingException:padblockcorrupted...难道我做错了什么?publicvoidinitKey(Stringpasswd,byte[]salt)throwsNoSuchAlgorithmException,InvalidKeySpecException,NoSuchProviderException{byte[]localsalt=salt;PBEKeySpecpassword=newPBEKeySpec(passwd.toCharArray(),loca
我使用AES算法来加密我的数据。当我加密16字节(一个block)时,结果是32字节。我期望16字节,但它生成32字节。如果我以字符串格式使用我的代码,结果是相同的。为什么?我的源码是packagechert.chert;importchert.chert.R;importchert.chert.SimpleCrypto;importandroid.app.Activity;importandroid.os.Bundle;importandroid.widget.TextView;publicclassChertActivityextendsActivity{/**Calledwhen
我正在开发Android应用程序。作为一个完全次要的功能,它将允许用户加密一些字符串。我知道比DES(56位)更推荐使用AES(256位)。但是,如果我使用AES-256并在Android电子市场中发布我的应用程序,我的应用程序是否会受到导出管理条例(EAR)的监管?http://www.bis.doc.gov/encryption/我读过它对使用超过56位的key进行加密的软件进行了监管。我的应用不会真正管理绝密信息。它将允许用户互相发送加密信息。它几乎只是作为一个游戏,尽管一些用户可能会用它来获取secret信息。那么,您会推荐我使用AES-256还是DES-56?如果有人可以确认
我正在使用密码来加密和解密消息:publicStringencrypt(Stringstring)throwsInvalidKeyException,IllegalBlockSizeException,BadPaddingException,UnsupportedEncodingException{cipher.init(Cipher.ENCRYPT_MODE,secretKeySpec);byte[]stringBytes=string.getBytes("UTF-8");byte[]encryptedBytes=cipher.doFinal(stringBytes);returna
我正在为我的Android应用程序使用Realm,我想使用Realm浏览器在我的Mac上查看default.realm文件,但它要求提供加密key。我没有通过提供“.encryptionKey(key)”明确地在Realm配置中进行加密。那么我必须提供什么加密key?默认情况下是否有任何加密?我在AndroidStudio上使用Realm插件2.0.2,我的Realm浏览器在Mac上是2.0.1。我还尝试在我的代码中提供这样的encryptionKey(key):byte[]key=newbyte[64];newSecureRandom().nextBytes(key);RealmCo
我正在尝试使用BouncycaSTLe在Android设备上解密X509证书。但是,我一直得到java.lang.RuntimeException:algorithmidentifier1.2.840.10045.2.1inkeynotrecognised.但是,当我在自己的计算机上运行完全相同的代码时,它运行得非常好。android是否用过时的版本覆盖了一些bouncycaSTLe库? 最佳答案 我认为Android还没有完整的ECC功能。android使用的bouncycaSTLe已经去掉了很多。不过,我会看一下spongyca
我有这段用于加密视频文件的代码。publicstaticvoidencryptVideos(Filefil,Fileoutfile){try{FileInputStreamfis=newFileInputStream(fil);//Fileoutfile=newFile(fil2);intread;if(!outfile.exists())outfile.createNewFile();FileOutputStreamfos=newFileOutputStream(outfile);FileInputStreamencfis=newFileInputStream(outfile);Ci
我在理解两个设备上的密码/加密器时遇到了一个真正的问题。1.如果我们在iOS和Android上使用CipherAES加密消息并且字符串的字符长度不大于16(例如“abcdefghijklmno”),我们在使用相同的key/密码加密后得到相同的结果。2。但是如果使用更长的消息,我们在iOS和Android上会得到不同的结果(例如“abcdefghijklmnop”)我做了很多研究如何为两个设备获取相同的参数,起初我认为这是安全的。这是我的加密密码:publicStringencode(Contextcontext,Stringpassword,Stringtext)throwsNoPas